/*
	编程实现自定义数组扩容
*/
import java.util.Scanner;
import java.util.Arrays;
public class ExpansionTest {
	public static void main(String[] args) {
		// 1、提示用户输入自定义数组容量
		System.out.println("请输入数组容量：");
		Scanner sc = new Scanner(System.in);
		// 2、声明一个对应容量的数组
		int size = sc.nextInt();
		int[] arr = new int[size];
		// while循环实现自动化扩容
		int count = 0;
		while(true){
			// 提示用户输入元素
			System.out.println("请输入第" + (count + 1) + "个元素");
			arr[count] = sc.nextInt();
			count++;
			System.out.println("数组中的元素是：" + Arrays.toString(arr));
			// 当元素个数大于等于原容量的80%时自动化扩容
			if(count >= (size*0.8)){
				// 容量扩展为之前大小的1.5倍
				size = (int)(size *1.5);
				// 新建一个新的临时数组存放扩容后的数组
				int[] temp = new int[size];
				System.out.println("新申请的数组大小是：" + temp.length);
				// 将原有数据复制到新扩容后的数组中
				System.arraycopy(arr, 0, temp, 0, count);
				arr = temp;
				System.out.println("数组中的元素是：" + Arrays.toString(arr));
			}

		}
	}
	
}